package main

import "fmt"
import "runtime"

//runtime包中有几个处理goroutine的函数
func main() {
	defer fmt.Println("defer...")

	//1.退出当前执行的goroutine，但是defer函数还会继续调用
	runtime.Goexit()

	//2.让出当前goroutine的执行权限，调度器安排其他等待的任务运行，并在下次某个时候从该位置恢复执行
	runtime.Gosched()

	//3.返回 CPU 核数量
	fmt.Println(runtime.NumCPU())

	//4.返回正在执行和排队的任务总数
	fmt.Println(runtime.NumGoroutine())

	//5.用来设置可以并行计算的CPU核数的最大值，并返回之前的值
	fmt.Println(runtime.GOMAXPROCS(6))
}
